/**
 * 视频通话功能测试文件
 * 用于测试Taro端的视频通话功能是否正常工作
 */

// 测试WebRTC支持
function testWebRTCSupport() {
  console.log('=== WebRTC支持测试 ===')
  
  // 检查RTCPeerConnection支持
  if (typeof RTCPeerConnection !== 'undefined') {
    console.log('✅ RTCPeerConnection 支持')
  } else {
    console.log('❌ RTCPeerConnection 不支持')
  }
  
  // 检查getUserMedia支持
  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
    console.log('✅ getUserMedia 支持')
  } else {
    console.log('❌ getUserMedia 不支持')
  }
  
  // 检查WebSocket支持
  if (typeof WebSocket !== 'undefined') {
    console.log('✅ WebSocket 支持')
  } else {
    console.log('❌ WebSocket 不支持')
  }
}

// 测试媒体设备权限
async function testMediaPermissions() {
  console.log('=== 媒体设备权限测试 ===')
  
  try {
    const stream = await navigator.mediaDevices.getUserMedia({
      video: true,
      audio: true
    })
    
    console.log('✅ 成功获取媒体流')
    console.log('视频轨道数量:', stream.getVideoTracks().length)
    console.log('音频轨道数量:', stream.getAudioTracks().length)
    
    // 停止流
    stream.getTracks().forEach(track => track.stop())
    console.log('✅ 媒体流已停止')
    
  } catch (error) {
    console.log('❌ 获取媒体流失败:', error.message)
  }
}

// 测试Socket连接
function testSocketConnection() {
  console.log('=== Socket连接测试 ===')
  
  const API_BASE = 'http://localhost:3000'
  const socket = require('socket.io-client')(API_BASE)
  
  socket.on('connect', () => {
    console.log('✅ Socket连接成功')
    socket.disconnect()
  })
  
  socket.on('connect_error', (error) => {
    console.log('❌ Socket连接失败:', error.message)
  })
  
  // 5秒后超时
  setTimeout(() => {
    if (socket.connected) {
      console.log('✅ Socket连接测试完成')
    } else {
      console.log('❌ Socket连接超时')
    }
  }, 5000)
}

// 运行所有测试
function runAllTests() {
  console.log('开始视频通话功能测试...\n')
  
  testWebRTCSupport()
  console.log('')
  
  testMediaPermissions()
  console.log('')
  
  testSocketConnection()
  console.log('')
  
  console.log('测试完成！')
}

// 如果在Node.js环境中运行
if (typeof module !== 'undefined' && module.exports) {
  module.exports = {
    testWebRTCSupport,
    testMediaPermissions,
    testSocketConnection,
    runAllTests
  }
}

// 如果在浏览器环境中运行
if (typeof window !== 'undefined') {
  window.VideoCallTest = {
    testWebRTCSupport,
    testMediaPermissions,
    testSocketConnection,
    runAllTests
  }
}
